plsql基础(代码块,select into 数据类型,execute immediate)

您所在的位置:网站首页 oracle select * into plsql基础(代码块,select into 数据类型,execute immediate)

plsql基础(代码块,select into 数据类型,execute immediate)

#plsql基础(代码块,select into 数据类型,execute immediate)| 来源: 网络整理| 查看: 265

文章目录 一定义:语法:变量和常量:&:输入符号 二 plsql中的数据类型三select into语句:1.语法3.使用execute immediate 执行

一定义: 语法: declare --声明部分 begin --代码块 exception 异常处理 end; 变量和常量:

变量和常量都是用来保存数据的 语法: 变量名 数据类型:=初始值; 变量可以在程序中修改它存储的值 常量:不可修改,在声明是必须包含常量名 语法: 常量名 constant 数据类型:=常量值; 标识符命令规范: (1)对象名以字母开头,可以有数字,——,#等特殊字符 (2)长度不能超过30个英文字符 (3)不能以数字开头 (4)避免使用oracle关键字 sql dbms_output.put(字符串),--在控制台输出一个字符串内容 ,输出晚不换行,但是不换行不输出 dbms_output.put_line(z字符串)在控制台输出一个字符串内容,输出之后换行

declare --声名一个变量,并给变量一个初始值 'PLSQL' v varchar2(30):='PLSQL'; --声名一个常量 p constant number(7,6):=3.141591; begin /* --能过dbms_output.put_line,输出变量v的值 dbms_output.put_line(v); --修改变量的值 v:='oracle'; dbms_output.put_line(v); dbms_output.put_line(p); --p:=3; 常量值不可修改 */ --输出不换行 dbms_output.put(v);--输出变量v的值 dbms_output.put('smith'); dbms_output.put(' ni hao'); --dbms_output.put_line(''); --使用dbms_output.put_line()打印空字符串,让其换行 dbms_output.new_line(); --换行 end; &:输入符号

注意: 数字类型:&变量名 字符串类型:‘&变量名’

select * from emp where deptno=&部门编号; 二 plsql中的数据类型

1.基础类型 1数字类型: number(长度,精度):最大长度38,最小默认1 integger:整数类型 pls_integer:整数类型 binary_interger:整数类型 filoat:浮点型(小数类型) 2.字符串类型 varchar2(长度):变长字符串类型,最大长度4000个字符(英文) char(长度):定长字符串类型 long:可以存放2G的内容(oralce不建议使用的类型) CLOB:存放大文本内容(txt,word),可能会在代码块中出现 blob:二进制方式存储大文件(音频,视频文件) 3.日期类型 date:日期类型 timestamp:时间类型 4.布尔类型 boolean:只有三个值,true,false null;2 2.复杂类型 5.记录类型: record:可以存放多个值; 记录类型:可以存放多个值,但都属于一条数据 定义类型语法

type 类型名称 is record( ·属性名 数据类型; ......... );

变量声名 变量名 类型名; 记录类型的使用; 变量名.属性名;—取一个记录类型的属性值 变量名.属性名:=值;

declare --定义一个记录类型 type amtype is record( name varchar2(30), job varchar2(50), sal number(5) ); --声名一个记录类型变量 v amtype; begin v.name:='张三'; v.job:='CLERK'; v.sal:=1234; --记录类型变量不能直接打印 dbms_output.put_line(v.name||','||v.job||','||v.sal); end;

6.%type类型 %type:取其他对象的类型,作为变量类型(取表中的一列数据类型,作为变量类型) 对象名%type(类型) 注意: 只能取单一类型 emp.job%type–取emp表中job列的数据类型,作为一个新的类型varchar(9) 7.%rowtype类型 %rowtype类型:它是记录类型和%type的类型的结合;取一个对象的类型作为变量的类型 表名%rowtype; emp%rowtype

三select into语句: 1.语法

select 列名,列名,…into 变量,变量,…from 表名 where 。。group by。。。order by。。 注意:select into语句每次只能查询一条数据,不能多不能少

declare --声名一个变量保存,员工的姓名 v_ename varchar2(20); begin select ename into v_ename from emp where empno=7369; --将7369的员工编号查询到变量v_ename中 --打印员工姓名 dbms_output.put_line(v_ename); end;

代码块部分:sql语句,流程控制语句 sql语句的扫行: 1.select into语句(selec) 2.insert,update,delete语句(可以直接在代码块中扫行)

begin insert into dept values(50,'dept1','loc'); end; 3.使用execute immediate 执行

语法: execute immediate sql语句(字符串类型)[into 变量] [using 值]; into 字句和select into 中的一样:用于将select查询结果保存到变量中 using子句:用于给sql语句传递参数 ddl语句不能直接在plsql代码块中运行,但是可以放在execute immediate 中运行

declare --声名一个变量保存员工的姓名 v_ename varchar2(20); begin execute immediate 'select ename from emp where empno=7369' into v_ename; --打印查询结果,打印变量的值 dbms_output.put_line(v_ename); end;

execute immediate 语句中sql点位符 :n 表示点位符,n一般情况下是一个正整数,也可以是其他字符串,如果sql语句中包含点位符,那么必须使用using字句给点位符传值;

begin execute immediate 'delete from emp where empno=:1' using 7369;--delete from emp where empno=7369 end;

oracle字符串中包含字符串的情况: 1)使用两个单引号表示一个单引号 2)使用chr()函数来获取一个单引号chr(39) execute immediate 和直接执行的sql语句的 1)ddl语句不能直接在plsql代码块中运行,但是可以放在execute immediate中运行 2)当sql语句操作的表,是使用execute immediate动态创建的,那么只能在execute immediate中运行 3)当将表名放入变量中时,这是必须使用execute immediate 语句来运行

begin --创建一张ttt3的表 execute immediate 'create table ttt3(id number(11),name varchar2(30))'; --给表里添加数据 insert into ttt3 values(1,'plsql'); ---不允许运行,但是可以在execute immediate中运行 end;


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3